Skip to content

WIP: drivers: creates independent module for importing driver interface#27623

Draft
mismithhisler wants to merge 1 commit intomainfrom
f-move-drivers-to-independent-module
Draft

WIP: drivers: creates independent module for importing driver interface#27623
mismithhisler wants to merge 1 commit intomainfrom
f-move-drivers-to-independent-module

Conversation

@mismithhisler
Copy link
Member

@mismithhisler mismithhisler commented Mar 3, 2026

Description

These changes are a first stage for moving the plugins package into it's own go module. The motivation for these changes was to decouple plugin dependencies from Nomad client/server dependencies. As an example, this is important for container task drivers which import the container runtime spec. Nomad uses a version of the container runtime spec for it's exec tasks, which may be different from runtime spec needed for a task driver. This has the potential to cause version conflicts (and did recently with Podman).

By removing Nomad imports from the plugins module, driver authors will see less package conflicts, making it easier to author Nomad drivers.

There are still a number of tasks to accomplish before this migration is complete. They include:

  1. All plugins imports in Nomad should instead import from plugin-interface.
  2. Structs copied to plugin-interface from Nomad should be removed from Nomad
    and imported from plugin-interface.
  3. Buf gen should be updated and protos for plugin-interface should be regenerated.
  4. Run modernize on entire plugin-interface directory to fix warnings and deprecations.

Testing & Reproduction steps

Links

Contributor Checklist

  • Changelog Entry If this PR changes user-facing behavior, please generate and add a
    changelog entry using the make cl command.
  • Testing Please add tests to cover any new functionality or to demonstrate bug fixes and
    ensure regressions will be caught.
  • Documentation If the change impacts user-facing functionality such as the CLI, API, UI,
    and job configuration, please update the Nomad product documentation, which is stored in the
    web-unified-docs repo. Refer to the web-unified-docs contributor guide for docs guidelines.
    Please also consider whether the change requires notes within the upgrade
    guide
    . If you would like help with the docs, tag the nomad-docs team in this PR.

Reviewer Checklist

  • Backport Labels Please add the correct backport labels as described by the internal
    backporting document.
  • Commit Type Ensure the correct merge method is selected which should be "squash and merge"
    in the majority of situations. The main exceptions are long-lived feature branches or merges where
    history should be preserved.
  • Enterprise PRs If this is an enterprise only PR, please add any required changelog entry
    within the public repository.
  • If a change needs to be reverted, we will roll out an update to the code within 7 days.

Changes to Security Controls

Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.

@mismithhisler mismithhisler self-assigned this Mar 3, 2026

import (
"context"
"crypto/md5"

Check warning

Code scanning / Go Modules Scanner

MD5 is not secure Warning

found potentially insecure MD5 usage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant